<script>
function delay(ms) {
  return new Promise((resolve, reject) => {
    setTimeout(resolve, ms)
  })
}
function ajax(data, ms) {
  return delay(ms).then(() => data)
}

async function fn() {

  let d1 = await ajax("a", 1000)
  let d2 = await ajax(d1+"b", 500)
  let d3 = await ajax(d2+"c", 1500)
  console.log(d1, d2, d3, Date.now() - b)
}
// async function fn() {
//   let p1 = ajax("a", 1000)
//   let p2 = ajax("b", 500)
//   let p3 = ajax("c", 1500)
//   let d1 = await p1
//   let d2 = await p2
//   let d3 = await p3
//   console.log(d1, d2, d3, Date.now() - b)
// }
const b = Date.now()
fn()
</script>